package com.benjaminwan.read.free.ui.main

import android.bluetooth.BluetoothDevice
import com.airbnb.mvrx.Async
import com.airbnb.mvrx.MvRxState
import com.airbnb.mvrx.Uninitialized
import com.benjaminwan.read.free.model.action.LoopProgress
import com.benjaminwan.read.free.model.action.Position
import com.benjaminwan.read.free.model.action.Script

data class MainState(
    val plugDev: BluetoothDevice? = null,
    val appReady: Boolean = false,
    val connected: Boolean = false,
    val bootMode: Boolean = false,
    val numLock: Boolean = false,
    val capsLock: Boolean = false,
    val scrollLock: Boolean = false,
    val moveSpeed: Int = 1,
    val scrollSpeed: Int = 1,
    val dragRequest: Async<Any?> = Uninitialized,
    val isScriptRunning: Boolean = false,
    val script: Script = Script(),
    val currentPos: Position = Position(-1, -1),
    val groupProgress: LoopProgress = LoopProgress(-1, -1, -1),
    val scriptProgress: LoopProgress = LoopProgress(-1, -1, -1)
) : MvRxState